package com.iweb.entity;

/**
 * 宠物狗类 子类
 */
public class Dog extends Pet{
    /*品种*/
    private String strain;

    /**
     * 重写父类的show方法
     */
    @Override
    public void show() {
        super.show();    //调用父类的show方法
        System.out.println("品种:"+strain);
    }

    /**
     * 重写父类play抽象方法
     * @return 宠物狗能否玩游戏 true代表可以玩游戏 false代表疲倦了，不能玩了
     */
    @Override
    public boolean play() {
        if (this.health < 15){     //先判断能否进行一次游戏
            System.out.println(this.nickName+"已经疲惫了，不能继续玩游戏了");
            return false;
        }
        System.out.println(this.nickName+"正在和主人玩接飞盘的游戏，健康值-15，亲密度+15");
        this.health -= 15;
        this.love += 15;
        if (this.love > 100){        //判断亲密度是否达到升级要求
            this.level += 1;
            this.love -= 100;
            System.out.println("恭喜您，您的宠物"+this.nickName+"升级了，当前等级："+this.level);

        }
        return true;
    }

    /**
     * 重写父类eat抽象方法
     * @return 宠物狗能否喂食 true代表能喂食 false代表吃饱了，不能喂食
     */
    @Override
    public boolean eat() {
        if(this.health == 100){           //判断宠物狗是否吃饱，已吃饱就不能继续喂食
            System.out.println(this.nickName+"已经吃饱了");
            return false;
        }
        System.out.println(this.nickName+"吃了一根大骨头，健康值+30");
        this.health += 30;
        this.health = this.health>100?100:this.health;    //判断健康值是否大于100，大于100，健康值置为100，小于100，健康值为原来的健康值+30
        return true;
    }

    public Dog() {
    }

    public Dog(String nickName, int health, int love, int level, String strain) {
        super(nickName, health, love, level);    //访问父类构造方法
        this.strain = strain;
    }

    public String getStrain() {
        return strain;
    }

    public void setStrain(String strain) {
        this.strain = strain;
    }
}
